﻿// mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QMap>
#include <QSharedPointer>
#include "virtualdevice.h"

QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
    void initDefaultDevice();
private slots:
    void on_addDeviceButton_clicked();
    void on_removeDeviceButton_clicked();
    void on_startAllButton_clicked();
    void on_stopAllButton_clicked();

    // 接收来自 VirtualDevice 的日志信号
    void appendToLog(const QString &message);

    void on_setDefaultResponsesButton_clicked();
    void on_setResponseButton_clicked();

private:
    Ui::MainWindow *ui;
    QMap<QString, QSharedPointer<VirtualDevice>> m_devices; // Key: "IP:Port"

    // 辅助函数
    QString getCurrentDeviceKey() const;
    void updateDeviceList();
};

#endif // MAINWINDOW_H
